This application relates to the field of network analysis, and in particular to a user interface to a network simulation system that facilitates an interactive analysis of the expected performance of an application when deployed on a network.
Network simulators are commonly used to determine the expected performance of a network under a variety of simulated conditions. The interconnection of elements forming a network is modeled, and hypothetical traffic patterns are provided to the model to determine and/or estimate how the modeled network will perform under these traffic conditions. Alternative interconnections and/or configurations of the elements can also be modeled, to perform a “what-if?” analysis, or to diagnose real or assumed problems in the network.
Generally, networks are modeled down at the transport protocol layer, wherein the simulation models the transport of discrete packets among nodes in the network. Traffic approximating the expected traffic in the actual network is simulated and the nodes in the modeled network simulate the processing and propagation of this traffic through the network. Based on this simulation of packet flow, the network performance measures for the nodes and links of the network can be estimated, such as propagation and queuing delays, drop rates, retransmission rates, and so on, In this manner, for example, bottlenecks in network can be identified, and changes to the network simulated to determine whether such bottlenecks are relieved by the changes.
As used herein, the term ‘simulation’ is used to mean any of a variety of tools available to estimate the performance of a network based on a model of the network and a model of the traffic being passed over the network. Such simulation tools may range from discrete event simulators that model each transmission of packets from nodes, and the subsequent propagation of resultant packets from these and other nodes in the network, to analytic simulators, such as systems that use queuing theory models to determine the overall steady state condition of the network based on analytic models of the network and each node, or simpler models that determine delays based on such factors as available bandwidth, message size, distance between nodes, and so on. Additionally, the actual network may be used to simulate the performance of an application by actually generating messages and packets based on a model of the traffic that an application is expected to generate in use, and collecting performance statistics based on these generated test messages and packets.
Simulation is commonly used to determine how well the network performs when running a variety of select applications, to verify the network's suitability for running these applications, as well as identifying any potential problems with running each application in this network environment. Typically, an application of interest is simulated with traffic from other applications, under a variety of network loading conditions.
Depending upon the capabilities of the simulator, the resultant output can take on a variety of forms. The transmission of packets between nodes of the network can be displayed on traditional timing diagrams, accumulated time between the transmission of a message from a source node to its arrival at its destination node may be represented using a GANTT chart, packets exchanged among tiers of a network may be represented using ‘bounce diagrams’, and so on.
Typically, a user creates the model of the network, defines the traffic patterns that are to be initiated at a variety of nodes at given times, as well as optionally specifying nondescript background traffic loading of the channels of the network, starts the simulation, and views the results, using, as noted above, any of a variety of output formats to facilitate analysis. To perform a different simulation, for example, to perform different “what-if?” analyses, the user modifies the input data to the simulator, re-starts the simulator, and views the new results.
Traditionally, the typical user of a network simulation tool is a person who designs or manages a network, and is interested in determining how and where to change the network to better handle the needs of the users of the network. As networking has become more and more a part of most computer applications, however, the community of network simulation users has grown to include application developers who are interested in determining how and where to change their applications to better handle the needs of the users of their applications. That is, in today's environment, in addition to addressing the ‘internal’ performance issues inherent to the execution of an application, the application developer must also address the ‘external’ performance issues inherent to running the application in a networking environment.
As noted above, most network simulation tools operate at the transport protocol layer, and as such, the traffic patterns that are to be initiated at the various nodes are conventionally defined in terms of packets that are to be generated at each of the nodes. The application developer, on the other hand, deals with the operation of the application at the application protocol layer, and the creation and/or modification of the transport protocol input data to drive a conventional network simulator can be a daunting, and often seemingly impossible task. For example, at the application protocol layer, an application developer may define a task in terms of a client that requests records from a database after completing an authentication exchange. At the network simulation level, on the other hand, the input to the simulator is a set of packets that are to be sent from the client to an authentication server, packets sent from the authentication server to the client, a subsequent set of packets that are to be sent from the client to an application server, packets to be sent from the application server to a database server, and so on.
Due to the dynamic nature of application, it is an objective of this invention to ease the task of creating and/or modifying the input data to a network simulator, and particularly the messages that are to be initiated at the nodes. It is a further objective of this invention to facilitate the creation and/or modification of the input to a network simulator from an application layer perspective. It is a further objective of this invention to integrate the viewing of results from one simulation with the creation and/or modification of input for a subsequent simulation.
These objectives, and others, are achieved by providing a user interface to a network simulator that facilitates the use of application layer parameters and application layer logic. The user interface is configured to allow the user to define the input in a graphic form, or a text/programming form, or a combination of both. Preferably, the user interface provides common graphic forms for both inputting the data to the simulator as well as for displaying the resultant data from the simulator, thereby easing the progression from the analysis of output from one simulation to the generation of new input for a subsequent simulation.
Throughout the drawings, the same reference numerals indicate similar or corresponding features or functions. The drawings are included for illustrative purposes and are not intended to limit the scope of the invention.